package DAO;

import Model.Diagnostico;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
 * Classe criada para realizar operações no banco de dados.
 * @author Tiago
 * @since Classe criada em 23/09/2013.
 */

public class DAODiagnostico {
    Connection con;
    PreparedStatement pre = null;
    Conexao conexao = new Conexao();
    
    public void incluirDiagnostico(Diagnostico d){
        if(d.getNome().equals("")){
            JOptionPane.showMessageDialog(null, "Preencha os campos corretamente!");
        }
        else{
            con = conexao.obterConexao();
            try{
                String sql = "insert into diagnostico(nome_diagnostico,caracteristica_diagnostico) values(?,?)";
                pre = con.prepareStatement(sql);
                pre.setString(1, d.getNome().toUpperCase());
                pre.setString(2, d.getCaracteristica().toUpperCase());
                System.out.println("Comando SQL formado: "+ pre);
                pre.executeUpdate();
                JOptionPane.showMessageDialog(null, "Registro Incluido com Sucesso!");
            }
            catch(SQLException e){
                System.out.println("Diagnóstico - Erro: " + e.getMessage());
            }
        }
    }
    
    public void alterarDiagnostico(Diagnostico d){
        con = conexao.obterConexao();
        try{
            String sql = "update diagnostico set nome_diagnostico=?,caracteristica_diagnostico=? where cod_diagnostico=?";
            pre = con.prepareStatement(sql);
            pre.setString(1, d.getNome().toUpperCase());
            pre.setString(2, d.getCaracteristica().toUpperCase());
            pre.setInt(3, d.getCodigo());
            System.out.println("Comando SQL formado: "+ pre);
            int r = pre.executeUpdate();
            if(r > 0){
                JOptionPane.showMessageDialog(null, "Registro Alterado!");
            }
            else{
                JOptionPane.showMessageDialog(null, "Registro não Localizado");
            }
        }
        catch(SQLException e){
            System.out.println("Diagnóstico - Erro: " + e.getMessage());
        }
    }
    
    public void excluirDiagnostico(Diagnostico d){
        con = conexao.obterConexao();
        try{
            String sql = "delete from diagnostico where cod_diagnostico=?";
            pre=con.prepareStatement(sql);
            pre.setInt(1, d.getCodigo());
            System.out.println("Comando SQL: " + pre);
            int r = pre.executeUpdate();
            if(r > 0){
                JOptionPane.showMessageDialog(null, "Registro Excluido!");
            }
            else{
                JOptionPane.showMessageDialog(null, "Registro não Localizado!");
            }
        }catch(SQLException e){
            System.out.println("Diagnóstico - Erro: " + e.getMessage());        
        }
        
    }
    
    public ResultSet obterListaDiagnostico(){
        PreparedStatement pre = null;
        ResultSet rs=null;
        try {
            con = conexao.obterConexao();
            String sql = "select * from diagnostico";
            pre = con.prepareStatement(sql);
            rs = pre.executeQuery();
        } catch (SQLException e) {
           System.out.println("Diagnóstico - Erro: " + e.getMessage());
        }
        return rs;
    }
    
    public ResultSet pesquisarPorNome(String nome){
        PreparedStatement pre = null;
        ResultSet rs=null;
        try {
            con = conexao.obterConexao();
            String sql = "select * from diagnostico where nome_diagnostico like ?";
            pre = con.prepareStatement(sql);
            pre.setString(1, nome + '%');
            rs = pre.executeQuery();
        } catch (SQLException e) {
           System.out.println("Diagnóstico - Erro: " + e.getMessage());
        }
        return rs;
    }
    
    public ResultSet pesquisarPorCaracteristica(String caracteristica){
        PreparedStatement pre = null;
        ResultSet rs=null;
        try {
            con = conexao.obterConexao();
            String sql = "select * from diagnostico where caracteristica_diagnostico like ?";
            pre = con.prepareStatement(sql);
            pre.setString(1, caracteristica + '%');
            rs = pre.executeQuery();
        } catch (SQLException e) {
           System.out.println("Diagnóstico - Erro: " + e.getMessage());
        }
        return rs;
    }

} //Fim da classe
